//! 加密 ntru配合sha3
//!

use crate::{bean::wallet::key_pair, error::Error, utils::ntru};

pub fn sign(data: &[u8], private_key: &[u8], public_key: &[u8]) -> Result<Vec<u8>, Error> {
    ntru::sign(private_key, public_key, data)
}

pub fn verify(data: &[u8], signature: &[u8], public_key: &[u8]) -> bool {
    ntru::verify(data, signature, public_key)
}

pub fn generate_key_pair() -> Result<key_pair::KeyPair, Error> {
    let (private, public) = ntru::generate_key_pair()?;
    Ok(key_pair::KeyPair::new(
        private.get_bytes().to_vec(),
        public.get_bytes().to_vec(),
    ))
}
